home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
pascal
/
nonstop.zip
/
NONSTOP.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-09-27
|
2KB
|
55 lines
{Copyright (C) 1990 by J. Scott Sanbar. All Rights Reserved}
{Needs sister .ASM module NONSTOP.ASM }
unit NonStop; {Makes your program UNSTOPPABLE!}
interface
var
Intr09 : pointer absolute $0000:$0024; {Interrupt $09, keyboard ISR}
OldIntr09 : pointer; {Original Interrupt $09 }
const
NoBoot : boolean = true; {flag to disable soft boot }
NoBreak : boolean = true; {flag to disable Ctrl-Break }
NoCtrlC : boolean = true; {flag to disable Ctrl-C }
procedure InstallNonStopISR;
procedure NonStopExitProc;
implementation
var
PreNonStopExitProc : pointer;
const
Installed : boolean = false;
procedure NonStopISR; External; {$L NonStop}
procedure InstallNonStopISR;
begin
if not Installed then
begin
OldIntr09 := Intr09;
inline($fa); {CLI - disable interrupts }
Intr09 := @NonStopISR; {Link NonStop into interrupt chain}
inline($fb); {STI - enable interrupts }
PreNonStopExitProc := ExitProc; {Save old ExitProc }
ExitProc := @NonStopExitProc; {Link in NonStopExitProc }
Installed := true;
end;
end;
procedure NonStopExitProc;
begin
ExitProc := PreNonStopExitProc; {Point ExitProc to next }
inline($fa); {CLI - disable interrupts}
Intr09 := OldIntr09; {Restore Original Vector }
inline($fb); {STI - enable interrupts }
end;
end.